Disk-drive (or hard-drive) memory systems are being replaced with solid-state memory systems utilizing flash-memory technology. Compared to hard-drive systems, flash-memory systems offer the reliability of semiconductor-based memory along with less energy consumption and smaller size. While significant in-roads have been made in replacing hard-drives in consumer-based products such as in laptop computers, few of the hard-drives in enterprise-level systems have been replaced with solid-state drives for a variety of reasons. The most notable reason is the incompatibility of the file system structure in existing flash drive systems with the file system structure in enterprise-based hard-drives. This incompatibility is forced by the flash-memory architecture and by de facto hard-disk file structure system conventions.
Generally, flash-memory architecture requires the erasure of large blocks of memory but subsections, referred to as pages, may be written to as needed. Within each page, there are usually 2N bytes of memory (N is an integer and, at present, N ranges from 10 to 14 or more) for storing user data and an additional 100 to 500 or more bytes of memory for storing redundancy data (ECC) and file system information (e.g., metadata). The ECC is for detecting and correcting data stored in the corresponding user data in the page and the file system information is used for mapping virtual to physical addresses and vice-versa. As such, the additional bytes of memory are “hidden” from the user and are not available for storing data.
For consumer applications, hard-drive systems have data sectors that are generally arranged with data sized in powers of two, e.g., 28 or 210 bytes per sector. This works well with flash memories having similarly structured user data memory pages. However, for enterprise-based systems, the sectors are not sized by powers of two but larger, e.g., 520 or 528 bytes instead of 512 bytes (29). At present, forcing these larger sectors into existing flash-memory architectures results in inefficient designs with many unused bytes in each page, at least partially negating the advantages of flash-memory systems over hard-drive systems.